package com.zuo_book.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zuo_book.dto.SysProjectDTO;
import com.zuo_book.entity.SysProject;
import com.zuo_book.entity.SysProjectBo;

/**
 * 项目管理服务接口
 */
public interface SysProjectService {
    
    /**
     * 创建项目
     * @param project 项目信息
     * @return 项目ID
     */
    Long createProject(SysProjectBo project);
    
    /**
     * 更新项目
     * @param project 项目信息
     */
    void updateProject(SysProject project);
    
    /**
     * 获取项目详情
     * @param projectId 项目ID
     * @return 项目详情
     */
    SysProjectDTO getProjectById(Long projectId);
    
    /**
     * 删除项目
     * @param projectId 项目ID
     */
    void deleteProject(Long projectId);
    
    /**
     * 分页查询项目列表
     * @param page 页码
     * @param size 每页大小
     * @param keyword 关键字
     * @return 项目列表
     */
    Page<SysProjectDTO> listProjects(int page, int size, String keyword);
    
    /**
     * 更新项目状态
     * @param projectId 项目ID
     * @param status 状态
     */
    void updateProjectStatus(Long projectId, Integer status);
    
    /**
     * 更新项目进度
     * @param projectId 项目ID
     * @param progress 进度
     */
    void updateProjectProgress(Long projectId, Integer progress);
    
    /**
     * 获取用户参与的项目列表
     * @param userId 用户ID
     * @param page 页码
     * @param size 每页大小
     * @return 项目列表
     */
    Page<SysProjectDTO> getUserProjects(Long userId, int page, int size);

    /**
     * 获取用户创建的项目
     */
    Page<SysProject> getUserCreatedProjects( Long userId,int page, int size);
}